//package com.zhdl.modules.prefiresys.web.service.impl;
//
//import com.jacob.activeX.ActiveXComponent;
//import com.jacob.com.Dispatch;
//import com.jacob.com.Variant;
//import com.zhdl.modules.prefiresys.web.service.TextToSpeechService;
//
//public class TextToSpeechServiceImpl implements TextToSpeechService {
//
//    private ActiveXComponent spVoiceComponent;
//    private Dispatch spVoice;
//
//    public TextToSpeechServiceImpl() {
//        // 创建Sapi.SpVoice对象
//        spVoiceComponent = new ActiveXComponent("Sapi.SpVoice");
//        spVoice = spVoiceComponent.getObject();
//    }
//
//    @Override
//    public void startSpeak(String text) {
//        // 开始朗读文本
//        Dispatch.call(spVoice, "Speak", new Variant(text));
//    }
//
//    @Override
//    public void stopSpeak() {
//        // 停止朗读
//        // 注意：这里并没有直接停止朗读的方法，可以尝试发送空字符串或调用其他可能的方法
//        // 如果Sapi.SpVoice提供了直接停止的方法，应该调用那个方法
//        // 例如，如果有一个名为"Stop"的方法，则应该这样调用：
//        // Dispatch.call(spVoice, "Stop");
//
//        // 作为一种替代方案，可以尝试发送一个空字符串来尝试中断当前的朗读
//        Dispatch.call(spVoice, "Speak", new Variant(""));
//
//        // 或者，如果你知道朗读的文本长度，并且想要在某个点停止，可以在这里加入逻辑来中断朗读
//    }
//
//    // 记得在不再需要时释放资源
//    public void release() {
//        if (spVoiceComponent != null) {
//            spVoiceComponent.invoke("Release");
//            spVoiceComponent = null;
//        }
//    }
//}